package com.zlx.module_base.base_api.module;

import androidx.lifecycle.LiveData;

import com.zlx.module_base.base_api.res_data.BaseBean;
import com.zlx.module_base.base_api.res_data.DynamicCommentBean;
import com.zlx.module_base.base_api.res_data.DynamicDetailBean;
import com.zlx.module_base.base_api.res_data.DynamicLikeListBean;
import com.zlx.module_base.base_api.res_data.DynamicListBean;
import com.zlx.module_base.base_api.res_data.NearBean;
import com.zlx.module_base.base_api.res_data.NearBody;
import com.zlx.module_base.base_api.res_data.UpDynamicBean;
import com.zlx.module_base.base_api.res_data.UpdateUserBean;
import com.zlx.module_base.base_api.res_data.UserAccountBody;
import com.zlx.module_base.base_api.res_data.UserAddressUp;
import com.zlx.module_network.bean.ApiResponse;

import retrofit2.http.Body;
import retrofit2.http.Field;
import retrofit2.http.FormUrlEncoded;
import retrofit2.http.GET;
import retrofit2.http.Header;
import retrofit2.http.POST;
import retrofit2.http.Query;

public interface ServiceApi {

    /**
     * 点赞（视频，动态，文章，评论）
     * type 1视频，2动态，3文章，4评论
     *
     * @return
     */
    @FormUrlEncoded
    @POST("appapi/?service=Dynamic.addLike")
    LiveData<ApiResponse<UpdateUserBean>> addLike(
            @Header("token") String token,
            @Field("dynamicid") String dynamicid,
            @Field("type") String type
    );

    /**
     * 发布文章或者动态
     *
     * @return
     */
    @POST("appapi/?service=Dynamic.setDynamic")
    LiveData<ApiResponse<BaseBean>> setDynamic(
            @Header("token") String token,
            @Body UpDynamicBean body
    );

    /**
     * 动态列表（关注，推荐，同城，本人）
     *
     * @return
     */
    @FormUrlEncoded
    @POST("appapi/?service=Dynamic.getDynamicList")
    LiveData<ApiResponse<DynamicListBean>> getDynamicList(
            @Header("token") String token,
            @Field("isSelf") String isSelf,
            @Field("articleType") String articleType,
            @Field("city") String city,
            @Field("izFee") String izFee,
            @Field("tag") String tag,
            @Field("p") String p,
            @Field("isFollow") String isFollow,
            @Field("isMe") String isMe,
            @Field("isTj") String isTj,
            @Field("isDz") String isDz,
            @Field("suid") String suid
    );

    /**
     * 上传用户经纬度（建议在用户登陆之后调用此方法,调用此方法可刷新用户的经纬度）
     */
    @POST("appapi/?service=User.getUserAddress")
    LiveData<ApiResponse<String>> getUserAddress(
            @Header("token") String token,
            @Body UserAddressUp body
    );

    /**
     * 添加评论
     */
    @POST("appapi/?service=Dynamic.setComment")
    LiveData<ApiResponse<BaseBean>> setComment(
            @Header("token") String token,
            @Body DynamicCommentBean body
    );

    /**
     * 动态详情
     */
    @FormUrlEncoded
    @POST("appapi/?service=Dynamic.dynamicDetail")
    LiveData<ApiResponse<DynamicDetailBean>> dynamicDetail(
            @Header("token") String token,
            @Field("dynamicId") String dynamicId
    );

    /**
     * 附近的人
     */
    @POST("appapi/?service=Home.near")
    LiveData<ApiResponse<NearBean>> getNear(
            @Header("token") String token,
            @Body NearBody nearBody
    );

    /**
     * 动态点赞列表
     */
    @GET("appapi/getDynamicLikeList")
    LiveData<ApiResponse<DynamicLikeListBean>> getDynamicLikeList(
            @Header("token") String token,
            @Query("type2") String type2,
            @Query("p") String p
    );

    /**
     * 动态评论列表
     */
    @GET("appapi/getDynamicCommentList")
    LiveData<ApiResponse<DynamicLikeListBean>> getDynamicCommentList(
            @Header("token") String token,
            @Query("type2") String type2,
            @Query("p") String p
    );

    /**
     * 添加提现账户
     */
    @POST("appapi/money/?service=Money.setUserAccount")
    LiveData<ApiResponse<BaseBean>> setUserAccount(
            @Header("token") String token,
            @Body UserAccountBody userAccountBody
    );

}
